package com.sunny.design.singleton.registry;

/**
 * 枚举式单例
 *  属于注册式
 *
 * @author Sunny
 * @date 2019/12/29 16:36
 */
public enum EnumSingleton {
    INSTANCE;

    /**
     * 为什么枚举被称为最好的单例?
     *  通过反编译该类得到的代码, 看到的是该类是在静态代码块中就实例化了对象,属于饿汉式
     *  而且JDK不允许通过反射创建枚举类
     *  反序列化时JDK也对枚举做了处理,如果是枚举类,则直接通过valueOf方法获得唯一实例
     *
     * @return
     */
    public static EnumSingleton getInstance() {
        return INSTANCE;
    }
}
